#ifndef A_H
#define A_H

#include <iostream>

using namespace std;

class A {
   public:
    int v;
    A() : v(0) {}
    A(int v) : v(v) {}
    A(const A& other) {
        cout << "A(const A& other)\n";
        this->v = other.v + 2;
    }

    A& operator=(const A& other) {
        this->v = other.v;
        return *this;
    }
    A& operator=(int v) {
        cout << "operator=(int v)\n";
        this->v = v + 1;
        return *this;
    }
};

#endif